/**
 * promise 形式  getSetting 获取权限  返回promise形式的格式
 * 导出
 */
export const getSetting = () => {
  return new Promise((resolve, reject) => {
    wx.getSetting({
      success: (result) => {
        resolve(result);
      },
      fail: (err) => {
        reject(err);
      }
    })
  })
}
/**
 * promise 形式  chooseAddress 收获地址
 */
export const chooseAddress = () => {
  return new Promise((resolve, reject) => {
    wx.chooseAddress({
      success: (result) => {
        resolve(result);
      },
      fail: (err) => {
        reject(err);
      }
    });
  })
}

/**
 * promise 形式  openSetting 打开权限界面
 */
export const openSetting = () => {
  return new Promise((resolve, reject) => {
    wx.openSetting({
      success: (result) => {
        resolve(result);
      },
      fail: (err) => {
        reject(err);
      }
    });
  })
}

/**
 * promise 形式  showModal 提示框
 * params： 一个对象 之后再解构  提示信息
 */
export const showModal = ({ content }) => {
  return new Promise((resolve, reject) => {
    wx.showModal({  //这里的this 形参了闭包了 所以想要使用this 那就需要把success的回调改成箭头函数 让其没有this 
      title: '提示',
      content: content,
      success: (result) => {
        //成功后的判断交给外面的返回值
        resolve(result); //把成功后的返回值返回出去 
      },
      fail: (err) => {
        reject(err);
      }
    });
  })
}


/**
 *  promise 形式  showToast 提示框
 * @param {object} param0 参数
 */
export const showToast = ({ title }) => {
  return new Promise((resolve, reject) => {
    wx.showToast({
      title: title,
      icon: 'none',
      success: (res) => {
        resolve(res);
      },
      fail: (err) => {
        reject(err);
      }
    })
  })
}

/**
 *  promise 形式  login 获取用户登录信息
 */
export const login = () => {
  return new Promise((resolve, reject) => {
    wx.login({
      timeout: 10000,
      success: (result) => {
        resolve(result);  //成功回调rsove 并且传递拿到的返回值
      },
      fail: (err) => {
        reject(err);
      }
    })
  })
}

/**
 * promise 形式的 小程序的微信支付
 * @param {object} pay 支付所必要的参数
 */
export const requestPayment = (pay) => {
  return new Promise((resolve, reject) => {
    wx.requestPayment({
      ...pay, //小程序需要的
      success: (result) => {
        resolve(result)
      },
      fail: (err) => {
        reject(err);
      }
    });

  })
}

